import os
import shutil

# 定义图片文件夹路径和标签文件夹路径
image_folder = "D:/datasets/visDrone2019/VisDrone2019-DET-test/images"
label_folder = "D:/datasets/visDrone2019/VisDrone2019-DET-test/annotations"

# 定义新文件夹路径
new_folder = "D:/datasets/visDrone2019/VisDrone2019-DET-test/ann"

# 如果新文件夹不存在，则创建
if not os.path.exists(new_folder):
    os.makedirs(new_folder)

# 获取图片文件夹中的所有文件名
image_files = os.listdir(image_folder)

# 遍历图片文件夹中的文件
for image_file in image_files:
    # 获取对应的标签文件名
    label_file = image_file.split('.')[0] + '.txt'  # 替换成您实际的标签文件后缀名
    
    # 判断标签文件是否存在
    if os.path.exists(os.path.join(label_folder, label_file)):
        # 如果标签文件存在，则将图片文件移动到新文件夹中
        shutil.move(os.path.join(image_folder, image_file), new_folder)
    else:
        # 如果标签文件不存在，则打印提示信息
        print(f"标签文件不存在: {label_file}")

# 将标签文件夹中剩余的文件移动到新文件夹中（假设这些文件是没有对应图片的）
label_files = os.listdir(label_folder)
for label_file in label_files:
    # 获取对应的图片文件名
    image_file = label_file.split('.')[0] + '.jpg'  # 替换成您实际的图片文件后缀名
    
    # 判断图片文件是否存在
    if not os.path.exists(os.path.join(image_folder, image_file)):
        # 如果图片文件不存在，则将标签文件移动到新文件夹中
        shutil.move(os.path.join(label_folder, label_file), new_folder)
    else:
        # 如果图片文件存在，则打印提示信息
        print(f"图片文件存在: {image_file}")
